AWS Systems Manager パブリックパラメータリストが提供され、パラメータを見つけやすくなりました!

AWS Systems Manager パブリックパラメータリストが提供され、パラメータを見つけやすくなりました!

Clock Icon2021.04.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS Systems Manager Parameter Store(以降 Parameter Store) の パブリックパラメータ ですが、今回 パブリックパラメータ リスト取得が出来るようになりました!

AWS Systems Manager Parameter Store now supports easier public parameter discoverability

パブリックパラメータ は以前から提供されていましたが、どんな パラメータ (どんなサービスでどんな種類) があるのかを正しく把握することが困難でした。今回、リスト機能により どんな パブリックパラメータ があるのかを把握することが用意になりました。

Finding public parameters

ドキュメントによると概要としては下記の通りです。 注意点としては、全てのリージョンで等しく提供されているわけではないようです。

All public parameters are not published to all AWS Regions.

提供パラメータ(2021/04/02 時点)

  • ami-al-latest
  • ami-amazon-linux-latest
  • ami-windows-latest
  • aws-storage-gateway-latest
  • bottlerocket
  • canonical
  • datasync
  • debian
  • ec2windows
  • ecs
  • global-infrastructure
  • redhat
  • storagegateway
  • suse

確認方法(2021/04/02 時点)

  • マネジメントコンソール
  • CLI

やってみる

マネジメントコンソール

Systems Manager >>> パラメータストア >>> パブリックパラメータ

以前は パブリックパラメータ タブがありませんでした。

サービスを選択 にリストされているものが パブリックパラメータ として提供されているリストとなります。確かにドキュメント記載のサービスリストとは異なる部分があります。

任意サービスを選択すると、今までと同じように パラメータ を確認することが出来ます。

詳細を選択すると パラメータ 概要が確認出来ます。

CLI

ssm describe-parameters/aws/service/list を指定して取得します。

一覧を習得します。ほぼ一致します。

$ aws ssm describe-parameters --parameter-filters "Key=Name, Option=BeginsWith, Values=/aws/service/list" --region ap-northeast-1 --query Parameters[].Name |sort
[
    "/aws/service/list/ami-amazon-linux-latest",
    "/aws/service/list/ami-windows-latest",
    "/aws/service/list/appmesh",
    "/aws/service/list/aws-for-fluent-bit",
    "/aws/service/list/aws-storage-gateway-latest",
    "/aws/service/list/bottlerocket",
    "/aws/service/list/canonical",
    "/aws/service/list/cloud9",
    "/aws/service/list/datasync",
    "/aws/service/list/ecs",
    "/aws/service/list/eks",
    "/aws/service/list/global-infrastructure",
    "/aws/service/list/redhat",
    "/aws/service/list/storagegateway"
    "/aws/service/list/suse",
]

Name で限定せずにコマンドを実行すると Description にサービス用コマンドが記載されています。


$ aws ssm describe-parameters --parameter-filters "Key=Name, Option=BeginsWith, Values=/aws/service/list" --profile blog
{
    "Parameters": [
        {
            "Name": "/aws/service/list/ami-windows-latest",
            "Type": "String",
            "LastModifiedDate": 1615504058.727,
            "Description": "This parameter represents /aws/service/ami-windows-latest that provides public parameters. You can see what parameters ami-windows-latest provides by running 'aws ssm get-parameters-by-path --recursive --path /aws/service/ami-windows-latest/'",
            "Version": 1,
            "Tier": "Standard",
            "Policies": [],
            "DataType": "text"
        },

コマンド実行する パラメータ 一覧が取得出来ます。


$ aws ssm get-parameters-by-path --recursive --path /aws/service/ami-windows-latest/ 
{
    "Parameters": [
        {
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Simplified-64Bit-Base",
            "Type": "String",
            "Value": "ami-0b833d707cf8a786e",
            "Version": 63,
            "LastModifiedDate": 1615514134.081,
            "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Simplified-64Bit-Base",
            "DataType": "text"
        },
        {
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Traditional-64Bit-Base",
            "Type": "String",
            "Value": "ami-09e6867ba14cc73f7",
            "Version": 63,
            "LastModifiedDate": 1615514155.164,
            "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-windows-latest/Windows_Server-2012-R2_RTM-Chinese_Traditional-64Bit-Base",
            "DataType": "text"
        },

以下、略 ... 

先ほど、マネジメントコンソール と CLI の結果に差異があったのが気になったので CLI で パラメータ を取得してみます。 試しに redhut の パブリックパラメータ を取得してみます。


$ aws ssm get-parameters-by-path --recursive --path /aws/service/redhat/ --region ap-northeast-1
{
    "Parameters": []
}

パラメータを取得することは出来ませんでした。提供対象リージョンではないのかもしれませんが CLI の結果には表示されているので混同してしまいそうなので、適切なサービス一覧を確認するには マネジメントコンソールが手堅いかと思います。 (私のコマンドや誤認識の場合は、そっとご指摘ください)

さいごに

以前、パブリックパラメータ を利用してあれこれ試した時、他に良さそうなパラメータはないかなと試行錯誤した思い出があるので、こうして日々アップデートがされていくのは嬉しいですね!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.